/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package State.ex2;

import State.Carte;

/**
 *
 * @author David
 */
public class ETAT_ATTENTE_OPERATION extends Etat {

    
    /**
    * Impossiblde d'insérer la carte
    * @return ETAT_ATTENTE_OPERATION()
    */
    @Override
   public Etat insererCarte(Carte client, State.ex2.Distributeur dist){
        print("Carte déjà présente");
        return this;
    }
    
    
    /**
     * Si la somme demandé est disponible on la retire
     * si le solde du distributeur est arrivé a 0, on retire la carte
     * si la somme demandé est plus imporante que le solde disponible,
     * on indique le montant disponible
     */
    @Override
    public Etat retirerEspece(int somme, State.ex2.Distributeur dist){
        if(dist.getSommeDispo()>= somme){
                dist.retirersSomme(somme);
                print("Retrait de "+somme+ "€ OK");
                if(dist.getSommeDispo() == 0){
                    print("Carte retirée car distrib vide");
                    dist.setC(null);
                    return retirerCarte(dist);
                }
                return this;
        }else{
            print("Somme indisponible, il ne reste que "+dist.getSommeDispo()+"€");
        }
        return this;
    }
    
    
    /**
     * Impossible de rentrer le code
     * @return ETAT_ATTENTE_OPERATION()
     */
    @Override
    public Etat entrerCode(int code, State.ex2.Distributeur dist){
        print("Code déjà entré");
        return this;
    }
    
    
    /**
     * On passe a null la carte du distributeur
     * et on passe dans l'état ETAT_ATTENTE_CARTE
     * @return ETAT_ATTENTE_CARTE()
     */
    @Override
     public Etat retirerCarte(State.ex2.Distributeur dist){
        dist.setC(null);
         return new ETAT_ATTENTE_CARTE();
     }
    
}
